package com.liu.network.ip.bean;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * 2019/08/29
 * 
 * @author 刘波 用于iplong定时更新 1：是否存在自定义ip库，如果存在就不更新ip库，如果存在就执行下面的操作更新ip库。
 *         2：定时去IP库网站下载压缩包。读取文件名称，判断IP库网站是否有更新ip库。 3: 更新IP库
 */
public class IP_LONG {
	private static String url;
	private static String zipName;
	private static String zipSaveFilePath;
	private static String cityLocationsName;
	private static String IPV4Name;
	private static String outputTxtPath;
	// 使用系统默认IPlong开关，为off时使用系统默认的，为on时则使用用户自定义导入的iplong
	private static String ipLongSwitch;

	public static void main(String[] args) {
		readConfig();
		// 判断是否存在自定义ip库，如果存在就不更新ip库，如果存在就执行下面的操作更新ip库。
		if ("off".equals(ipLongSwitch)) {
			System.out.println("deploy配置页面 IP地址库 配置的是系统默认；所以开始更新IP库!!!");
			// 去IP库网站下载压缩包。
			System.out.println("开始去IP库网站下载压缩包。");
			RemoteFile loadFile = new RemoteFile(url, zipSaveFilePath);
			loadFile.downRemoteFile();

			// 更新ip库
			System.out.println("开始处理IP数据。");
			ReadGeoLiteCSV readIpAddressWarehouse = new ReadGeoLiteCSV(zipSaveFilePath, zipName, cityLocationsName,
					IPV4Name, outputTxtPath);
			readIpAddressWarehouse.read();
		} else {
			System.out.println("deploy配置页面 IP地址库 配置的是用户自定义；所以暂时不去更新IP库!!!");
		}

	}

	/**
	 * 读取配置
	 */
	static void readConfig() {
		Properties pro = new Properties();
		try {
			pro.load(ClassLoader.getSystemResourceAsStream("iplong.properties"));
			zipName = pro.getProperty("zipName");
			url = pro.getProperty("url");
			zipSaveFilePath = pro.getProperty("zipSaveFilePath");
			cityLocationsName = pro.getProperty("cityLocationsName");
			IPV4Name = pro.getProperty("IPV4Name");
			outputTxtPath = pro.getProperty("outputTxtPath");
			ipLongSwitch = pro.getProperty("ipLongSwitch");
		} catch (Exception e) {
			e.printStackTrace();
		} 
	}
}
